package com.echronos.finance.dao;

import com.echronos.finance.api.req.AcquireReceiptOnlineReq;
import com.echronos.finance.api.req.ReceiptOrderDetailReq;
import com.echronos.finance.api.req.ReceiptOrderQuickNotifyReq;
import com.echronos.finance.api.resp.ReceiptOnlineResp;
import com.echronos.finance.model.AccountBalance;
import com.echronos.finance.model.ReceiptOnline;

/**
 * @Author wangyadong
 * @Date 2023/9/14 10:25
 * @ClassName AcquireReceiptOnlineStrategy
 */
public interface AcquireReceiptOnlineStrategy {
    /**
     * 在线收单策略
     *
     * @param req
     * @return
     */
    ReceiptOnlineResp handleAcquireReceiptOnline(AcquireReceiptOnlineReq req);


    /**
     * 获取在线收单详情
     *
     * @param online
     * @return
     */
    ReceiptOnlineResp queryReceiptOnline(ReceiptOnline online);

    /**
     * 非快捷支付相关提交支付
     *
     * @param rodReq
     * @param online
     */
    void offlineUpdateReceiptOrderDetail(ReceiptOrderDetailReq rodReq, ReceiptOnline online);


    /**
     * 快捷支付相关提交支付
     *
     * @param req
     * @param online
     * @param payPay
     */
    void onlineUpdateReceiptOrderDetail(ReceiptOrderQuickNotifyReq req, ReceiptOnline online, Integer payPay);
}
